package leetcode.题库.动态规划;

/**
 * 最大子数组和
 *
 * @author yanzhenming
 * @date 2023/4/11  19:42
 */

/**
 * 描述
 *
 * 给你一个整数数组 nums ，请你找出一个具有最大和的连续子数组（子数组最少包含一个元素），返回其最大和。
 *
 * 子数组 是数组中的一个连续部分。
 */

/**
 * 思路
 * 当前最大值、全局最大值
 * 注意初始值的设定
 */
public class Solution53 {

    public int maxSubArray(int[] nums) {
        int curMax = 0, finMax = nums[0];
        for (int num : nums) {
            curMax = Math.max(curMax+num, num);
            finMax = Math.max(curMax, finMax);
        }
        return finMax;
    }

}
